using System;
using System.Runtime.InteropServices;

namespace KodeIT.Web
{
    /// <summary>
    /// Contains the possible reasons for an <see cref="AccessDeniedEvent"/> event.
    /// </summary>
    [ComVisible(true)]
    [Flags]
    public enum AccessDeniedReason
    {
        /// <summary>
        /// The client could not be logged on.
        /// </summary>
        DeniedLogon = 0x00000001,

        /// <summary>
        /// A Windows DACL denied the resource.
        /// </summary>
        DeniedResource = 0x00000002,

        /// <summary>
        /// An ISAPI filter denied the request.
        /// </summary>
        DeniedFilter = 0x00000004,

        /// <summary>
        /// An ISAPI extension or CGI application denied the request.
        /// </summary>
        DeniedApplication = 0x00000008,

        /// <summary>
        /// The server configuration denied the request. For example, disabling anonymous 
        /// requests on the server would generate this filter notification when a user without 
        /// credentials tried to make a request to the server.
        /// </summary>
        DeniedConfig = 0x00010000
    }
}
